﻿package {      
    import flash.display.Sprite;
    import flash.display.StageAlign;
    import flash.display.StageScaleMode;
    import flash.events.*;
    
    import org.papervision3d.cameras.Camera3D;
    import org.papervision3d.materials.WireframeMaterial;
    import org.papervision3d.objects.primitives.Sphere;
    import org.papervision3d.view.BasicView;   
    
	//Configurando o Stage do nosso filme
    [SWF(frameRate="31", width="500", height="500", backgroundColor="0x000000")]
	
    public class HelloWorld extends Sprite {   
 
        private var view:BasicView;
		private var esfera:Sphere;

		// Função construtora da classe
        public function HelloWorld() {   
            init();   
        }
		
		//Função que engloba a inicialização de nosso exemplo
        private function init():void {  
        	
			//Configuramos nosso Stage
        	stage.scaleMode = StageScaleMode.NO_SCALE;
        	stage.align = StageAlign.TOP_LEFT;
			
			//Criamos nosso BasicView
        	view = new BasicView(500, 500, true, false);
        	view.camera.zoom = 12;
        	view.camera.focus = 100;
			
			//Jogamos o ambiente no Stage
        	addChild(view);
        	
			//Criamos nossa esfera e jogamos dentro de nosso ambiente 3D
			esfera = new Sphere( new WireframeMaterial(), 100, 20, 20 );
        	view.scene.addChild( esfera );

			//Aplicamos o evento de renderização
            addEventListener( Event.ENTER_FRAME, enterFrameHandler );   

        }   

        private function enterFrameHandler( event : Event ):void {
			
			//Nosso mundo gira!
			esfera.rotationY += 12;
			esfera.rotationX += 12;
           view.singleRender();
        }   
    }   
}  